<?php

ini_set("display_errors", 0);
require_once 'bd.php';
require_once 'lib/nusoap.php';

/**
 * Executa o cadastro de um ticket, e retorna o codigo do ticket criado
 */
function CriarTicket($CPF = NULL, $Texto = NULL, $TipoChamado = NULL, $Grupo = NULL) {
	
	$erro = FALSE;
	$codigoErro = FALSE;
	$codigoChamado = FALSE;
	
	/*
	 * Parametros nao suficientes
	 */
	if($CPF == NULL || $Texto == NULL || $TipoChamado == NULL || $Grupo == NULL) {
		$erro = TRUE;
		$codigoErro = "501";
	} else {
		/*
		 * Tenta fazer a conexao com o banco pgsql
		 */
		$con = connect();
		if(!$con) { 
			$erro = TRUE;
			$codigoErro = "502";
		} else {
			/*
			 * Insere na tabela de chamados
			*/
			$queryCode = "INSERT INTO atendimento_cliente_chamado
			(cliente, tipo_id, status, abertura, atualizacao, grupo)
			VALUES
			('".$CPF."', ".$TipoChamado.", 1, CURRENT_DATE, CURRENT_DATE, '".$Grupo."')";
			$success = pg_query($queryCode);
			if(!$success) {
				$erro = TRUE;
				$codigoErro = "502";
			} else {
			
				/*
				 * Resgata o codigo do chamado que acabou de ser aberto, para retornar no final da funcao
				*/
				$queryCode = "SELECT max(id) FROM atendimento_cliente_chamado";
				$result = pg_query($queryCode);
				if (!$result) {
					$erro = TRUE;
					$codigoErro = "502";
				} else {
					while ($row = pg_fetch_row($result))
					{
						$codigoChamado = $row[0];
					}
					/*
					 * Insere o conteudo do chamado na tabela de pergunta
					*/
					$queryCode = "INSERT INTO atendimento_cliente_pergunta
					(chamado_id, descricao, data)
					VALUES
					(".$codigoChamado.", '".$Texto."', CURRENT_DATE)";
					$success = pg_query($queryCode);
					if(!$success) {
						$erro = TRUE;
						$codigoErro = "502";
					}
				}
			}	
		}
	}	
	
	$retorno = array("CodigoAcompanhamento" => $codigoChamado, "Erro" => $codigoErro);
	return $retorno;
}

$server = new soap_server();
$server->register("CriarTicket");
$server->service($HTTP_RAW_POST_DATA);

?>
